package com.zijidelu.luframework.base.exception.sys;

import com.zijidelu.luframework.base.dict.Dict;
import com.zijidelu.luframework.base.exception.SysException;

/**
 * 字典翻译异常。
 *
 * @author ZIJIDELU
 */
public class DictTranslationException extends SysException {

    public DictTranslationException(String message) {
        super(message);
    }

    public DictTranslationException(Throwable throwable) {
        super(throwable);
    }

    public DictTranslationException(String message, Throwable throwable) {
        super(message, throwable);
    }

    // --- 静态工厂方法：提供友好的API ---

    /**
     * 创建一个“根据键查找失败”的异常
     */
    public static DictTranslationException keyNotFound(Class<? extends Dict<?, ?>> dictClass, Object key) {
        return new DictTranslationException(String.format("字典 [%s] 翻译失败：键 '%s' 未找到", dictClass.getName(), key));
    }

    /**
     * 创建一个“根据值查找失败”的异常
     */
    public static DictTranslationException valueNotFound(Class<? extends Dict<?, ?>> dictClass, Object value) {
        return new DictTranslationException(String.format("字典 [%s] 翻译失败：值 '%s' 未找到", dictClass.getName(), value));
    }


}
